www.gusucode.com > (自适应手机版)响应式餐饮美食企业网站源码 餐饮品牌连锁机构织梦模板(demo292)源码程序 > (自适应手机版)响应式餐饮美食企业网站源码 餐饮品牌连锁机构织梦模板(demo292)源码程序/www3/style/js/superfish.js

    /*







 * Superfish v1.4.8 - jQuery menu widget







 * Copyright (c) 2008 Joel Birch







 *







 * Dual licensed under the MIT and GPL licenses:







 * 	http://www.opensource.org/licenses/mit-license.php







 * 	http://www.gnu.org/licenses/gpl.html







 *  http://www.yaoyingying.com/css/jquery/superfish/#getting-started  [china]







 *







 * CHANGELOG: http://users.tpg.com.au/j_birch/plugins/superfish/changelog.txt







 */















;(function($){







	$.fn.superfish = function(op){















		var sf = $.fn.superfish,







			c = sf.c,







			$arrow = $(['<span class="',c.arrowClass,'"> &#187;</span>'].join('')),







			over = function(){







				var $$ = $(this), menu = getMenu($$);







				clearTimeout(menu.sfTimer);







				$$.showSuperfishUl().siblings().hideSuperfishUl();







			},







			out = function(){







				var $$ = $(this), menu = getMenu($$), o = sf.op;







				clearTimeout(menu.sfTimer);







				menu.sfTimer=setTimeout(function(){







					o.retainPath=($.inArray($$[0],o.$path)>-1);







					$$.hideSuperfishUl();







					if (o.$path.length && $$.parents(['li.',o.hoverClass].join('')).length<1){over.call(o.$path);}







				},o.delay);	







			},







			getMenu = function($menu){







				var menu = $menu.parents(['ul.',c.menuClass,':first'].join(''))[0];







				sf.op = sf.o[menu.serial];







				return menu;







			},







			addArrow = function($a){ $a.addClass(c.anchorClass).append($arrow.clone()); };







			







		return this.each(function() {







			var s = this.serial = sf.o.length;







			var o = $.extend({},sf.defaults,op);







			o.$path = $('li.'+o.pathClass,this).slice(0,o.pathLevels).each(function(){







				$(this).addClass([o.hoverClass,c.bcClass].join(' '))







					.filter('li:has(ul)').removeClass(o.pathClass);







			});







			sf.o[s] = sf.op = o;







			







			$('li:has(ul)',this)[($.fn.hoverIntent && !o.disableHI) ? 'hoverIntent' : 'hover'](over,out).each(function() {







				if (o.autoArrows) addArrow( $('>a:first-child',this) );







			})







			.not('.'+c.bcClass)







				.hideSuperfishUl();







			







			var $a = $('a',this);







			$a.each(function(i){







				var $li = $a.eq(i).parents('li');







				$a.eq(i).focus(function(){over.call($li);}).blur(function(){out.call($li);});







			});







			o.onInit.call(this);







			







		}).each(function() {







			var menuClasses = [c.menuClass];







			if (sf.op.dropShadows  && !($.browser.msie && $.browser.version < 7)) menuClasses.push(c.shadowClass);







			$(this).addClass(menuClasses.join(' '));







		});







	};















	var sf = $.fn.superfish;







	sf.o = [];







	sf.op = {};







	sf.IE7fix = function(){







		var o = sf.op;







		if ($.browser.msie && $.browser.version > 6 && o.dropShadows && o.animation.opacity!=undefined)







			this.toggleClass(sf.c.shadowClass+'-off');







		};







	sf.c = {







		bcClass     : 'sf-breadcrumb',







		menuClass   : 'sf-js-enabled',







		anchorClass : 'sf-with-ul',







		arrowClass  : 'sf-sub-indicator',







		shadowClass : 'sf-shadow'







	};







	sf.defaults = {







		hoverClass	: 'sfHover',







		pathClass	: 'overideThisToUse',







		pathLevels	: 1,







		delay		: 350,







		animation	: {opacity:'show'},







		speed		: 'normal',







		autoArrows	: true,







		dropShadows : true,







		disableHI	: false,		// true disables hoverIntent detection







		onInit		: function(){}, // callback functions







		onBeforeShow: function(){},







		onShow		: function(){},







		onHide		: function(){}







	};







	$.fn.extend({







		hideSuperfishUl : function(){







			var o = sf.op,







				not = (o.retainPath===true) ? o.$path : '';







			o.retainPath = false;







			var $ul = $(['li.',o.hoverClass].join(''),this).add(this).not(not).removeClass(o.hoverClass)







					.find('>ul').hide().css('visibility','hidden');







			o.onHide.call($ul);







			return this;







		},







		showSuperfishUl : function(){







			var o = sf.op,







				sh = sf.c.shadowClass+'-off',







				$ul = this.addClass(o.hoverClass)







					.find('>ul:hidden').css('visibility','visible');







			sf.IE7fix.call($ul);







			o.onBeforeShow.call($ul);







			$ul.animate(o.animation,o.speed,function(){ sf.IE7fix.call($ul); o.onShow.call($ul); });







			return this;







		}







	});















})(jQuery);